#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=3e5+100;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int a,b;
int sum[N];
void solve()
{
	cin>>a>>b;

	if(sum[a-1]==b) cout<<a<<'\n';//为a是应为要算上0
	else if((sum[a-1]^b)==a) cout<<a+2<<'\n';		//如果要添加的数字是a的话,要找另外两个值异或起来==a来用
	else cout<<a+1<<'\n';			//要添加的数字不是a的话,且此时最小mex为a


	
}

int main()
{
	close();
	for(int i=1;i<=3e5+10;i++) sum[i]=sum[i-1]^i;//预处理

	int T; cin>>T;
	while (T--) solve();
	return 0;
}
//mex==a b必须有	[0-a-1] 
//a^b==c  --> a^c==b
// int a=3,b=20,c=23;
// cout<<(a^b)<<'\n';
// cout<<(c^b)<<'\n';
// cout<<(a^c)<<'\n';